package com.ruoyi.web.petmall.petback.controller;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.web.petmall.entity.BreedEntity;
import com.ruoyi.web.petmall.entity.TypeEntity;
import com.ruoyi.web.petmall.petback.service.BreedService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping(value = "/petBack/petBreed")
@Api(tags = "宠物品种管理")
public class BreedController extends BaseController {

    @Autowired
    private BreedService breedService;

    /**
     * 查询宠物品种列表
     *
     * @param breedEntity 查询条件封装为 BreedEntity 对象
     * @return 包含宠物品种列表的分页数据
     */
    @ApiOperation("查询宠物品种")
    @GetMapping("/getPetBreed")
    public TableDataInfo getPetBreed(BreedEntity breedEntity) {
        startPage();
        List<BreedEntity> list = breedService.getPetBreed(breedEntity);
        return getDataTable(list);
    }

    /**
     * 添加宠物品种
     *
     * @param breedEntity 要添加的宠物品种数据封装为 BreedEntity 对象
     * @return 包含操作结果的 AjaxResult 对象
     */
    @ApiOperation("添加宠物品种")
    @PostMapping("/addPetBreed")
    public AjaxResult addPetBreed(@RequestBody BreedEntity breedEntity) {
        return toAjax(breedService.addPetBreed(breedEntity));
    }

    /**
     * 修改宠物品种
     *
     * @param breedEntity 要修改的宠物品种数据封装为 BreedEntity 对象
     * @return 包含操作结果的 AjaxResult 对象
     */
    @ApiOperation("修改宠物品种")
    @PostMapping("/updatePetBreed")
    public AjaxResult updatePetBreed(@RequestBody BreedEntity breedEntity) {
        return toAjax(breedService.updatePetBreed(breedEntity));
    }

    /**
     * 删除宠物品种
     *
     * @param breedId 要删除的宠物品种 ID
     * @return 包含操作结果的 AjaxResult 对象
     */
    //TODO 删除宠物品种
    @ApiOperation("删除宠物品种")
    @DeleteMapping("/deletePetBreed")
    public AjaxResult deletePetBreed(Long breedId) {
        return toAjax(breedService.deletePetBreed(breedId));
    }
}